import FeatureLayer from "@geoscene/core/layers/FeatureLayer";

// Type of layer
type Layer = FeatureLayer;

// 定义一个类，用于管理所有的图层
class LayersStore {
  // 定义一个数组，用于存储所有的图层
  private layers: Layer[] = [];
  // 定义一个方法，用于获取所有的图层
  getLayers(): Layer[] {
    return this.layers;
  }
  // 定义一个方法，用于设置所有的图层
  setLayers(layers: Layer[]): void {
    this.layers = layers;
    
  }
  // 定义一个方法，用于添加一个图层
  addLayer(layer: Layer): void {
    this.layers.push(layer);
    
  }
  // 定义一个方法，用于清空所有的图层
  clearLayers(): void {
    this.layers = [];
  }
  // 定义一个方法，用于获取可见的图层
  getVisibleLayers(): Layer[] {
    return this.layers.filter(layer => layer.visible);
  }
}

export const layersStore = new LayersStore();
export const layerControlStore = new LayersStore();